package com.york.tinyrpc.protoss.loadbalancer;

import com.york.tinyrpc.protoss.spi.SpiLoader;

/**
 * 使用SPI机制加载负载均衡器
 */
public class LoadBalancerFactory {

    /**
     * 静态代码块赋值
     */
    static {
        SpiLoader.load(LoadBalancer.class);
    }

    /**
     * 提供默认的负载均衡器是轮询模式
     */
    private static final LoadBalancer DEFAULT_LOADBALANCER = new RoundRobinLoadBalancer();

    /**
     * 获取指定负载均衡器
     */
    public static LoadBalancer getLoadBalancerByType(String loadBalancerType) {
        return SpiLoader.getInstance(LoadBalancer.class, loadBalancerType);
    }
}
